# ### 2.提取ip相关信息
# * 前置知识：json、requests
# * 接口：https://ip.taobao.com/outGetIpInfo?accessKey=alibaba-inc&ip=要查询的ip地址
# * 给一个ip地址，可以通过该接口获取到省份和运营商
# * 实现一个ip查询功能
#     * 用户输入一个ip地址，将查询到的结果显示给用户
#     * 并将结果用以下格式写入到文件：ip,国家,省份,运营商
# import requests
# import json
# ip1 = input("请输入要查询的ip：")
# # 223.147.201.185
# information = requests.get("https://ip.taobao.com/outGetIpInfo?accessKey=alibaba-inc&ip="+ip1)
# # 将JSON字符串转换为Python字典存入infor_obj中
# infor_obj = json.loads(information.content)
# #获取ip地址所属的国家信息
# country = infor_obj.get("data")["country"]
# #获取省份
# region = infor_obj.get("data")["region"]
# #获取运营商
# isp = infor_obj.get("data")["isp"]
# print(ip1, country, region, isp)
# #将信息存入文件中
# with open("ip_infor.txt", 'a', encoding="utf-8") as fp:
#     fp.write(ip1+","+country+","+region+","+isp+"\n")

# ### 3.局域网存活IP检测
# * 前置知识：subprocess、IP地址处理模块（ipaddress）
# * 输入内容：要检查的网段、子网掩码 (输入：192.168.0.0/24)
# * 输出示例： 192.168.0.1已被使用
# * 将输出结果放到文件
# * 将可能存在异常的地方需要做相应处理
# import ipaddress
# import os
# ip1 = input("请输入要检测的ip：")
# # 192.168.90.0/24
# net = ipaddress.ip_network(ip1)
# fp = open("open_out.txt", "a", encoding="utf-8")
# for sub_ip in net.hosts():
#     # 打开一个管道ping IP地址
#     visit_IP = os.popen('ping -i 1 -w 1000 %s' % sub_ip)
#     # 读取结果
#     result = visit_IP.read()
#     # print(result)
#     # 判断IP是否在线
#     if 'TTL' in result:
#         print(sub_ip, '已被使用')
#         fp.write(str(sub_ip)+"已被使用\n")
#     else:
#         print(sub_ip, '未使用')
#         fp.write(str(sub_ip) + "未使用\n")
# fp.close()